package br.com.app.dao;

import java.util.ArrayList;
import java.util.List;

import br.com.app.connection.Conexao;
import br.com.app.objects.Produto;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

public class ProdutoDAO {
	private Conexao conexao;
	private SQLiteDatabase db;
	private String query;
	private Cursor cursor;
	
	public ProdutoDAO (Context context) {
		this.conexao = new Conexao(context);
		this.db = conexao.getWritableDatabase();
	}
	
	public void incluir(Produto produto){
		ContentValues values = new ContentValues();
		values.put("descricao", produto.getDescricao());
		values.put("codbarras", produto.getCodbarras());
		db.insert("produto", null, values);
		
	}
	
	public List<Produto> pesquisarTodos(){
		List<Produto> resultados = new ArrayList<Produto>();
		query = "select codigo, descricao, codbarras from produto";
		cursor = db.rawQuery(query, null);
		
		if (cursor.moveToFirst()){
			do {
				Produto produto = new Produto();
				produto.setCodigo(Integer.parseInt(cursor.getString(0)));
				produto.setDescricao(cursor.getString(1));
				produto.setCodbarras(Integer.parseInt(cursor.getString(2)));
				resultados.add(produto);
			} while (cursor.moveToNext());
		}
		cursor.close();
		return resultados;
	}
	
	public Produto pesquisar(int codigo){
		Produto produto = new Produto();
		query = " select codigo, descricao, codbarras from produto" +
				" where codigo = "+String.valueOf(codigo);
		cursor = db.rawQuery(query, null);
		cursor.moveToFirst();
		produto.setCodigo(Integer.parseInt(cursor.getString(0)));
		produto.setDescricao(cursor.getString(1));
		produto.setCodbarras(Integer.parseInt(cursor.getString(2)));
		cursor.close();
		return produto;
	}

	public void excluir(String codigo) {
		query = " delete from produto where codigo = "+String.valueOf(codigo);
		cursor = db.rawQuery(query, null);
	}

	public void alterar(Produto produto) {
		ContentValues values = new ContentValues();
		values.put("descricao", produto.getDescricao());
		values.put("codbarras", produto.getCodbarras());
		db.insert("produto", null, values);
		db.update("produto", values, " codigo = "+String.valueOf(produto.getCodigo()), null);
		cursor.close();
	}
}
